package com.huluobo.day_1_lifecycledemo.room;

import androidx.room.Dao;
import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.Query;
import androidx.room.Update;

import java.util.List;

/**
 * DAO Database Access Object 数据转换为对象
 * 用于数据库中的表转换为一个bean
 */

@Dao
public interface AccountDAO {
    /**
     * 插入账号数据
     *
     * @param accountBean 数据实体类
     */
    @Insert
    void insertAccount(AccountBean accountBean);

    /**
     * 查询所有账号
     *
     * @return 账号列表
     */
    @Query("select * from Account")
    List<AccountBean> loadAccountList();

    /**
     * 根据登录账号查询表中的账号是否存在
     *
     * @param loginName 当前登录的账号名
     * @return 存在的对象, 如果为空, 则不存在
     */
    @Query("select  * from Account where _loginAccount == :loginName")
    AccountBean findAccountByLoginName(String loginName);

    /**
     * 更新账号信息
     *
     * @param accountBean 对象
     */
    @Update
    void updateAccountBean(AccountBean accountBean);

    /**
     * 删除账号信息
     *
     * @param accountBean 对象
     */
    @Delete
    void deleteAccount(AccountBean accountBean);
}
